Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Системнi виклики opendir, readdir, closedir, rewinddir, seekdir, telldir та scandir.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Електронні обчислювальні машини

Інформація про роботу

Рік:
2004
Тип роботи:
Лабораторна робота
Предмет:
Проектування операційних систем, утиліт і драйверів
Група:
СПР-5

Частина тексту файла

Міністерство освіти України НУ “Львівська політехніка” Кафедра ЕОМ Звіт про виконання лабораторної роботи №3 з дисципліни “Проектування операційних систем, утиліт і драйверів” Назва роботи: “Системнi виклики opendir, readdir, closedir, rewinddir, seekdir, telldir та scandir” Виконав: студент групи СПР-5 Львів – 2004 Мета: Ознайомитися і навчитися використовувати функції для роботи з директоріями opendir, readdir, closedir, rewinddir, seekdir, telldir, scandir операційної системи Linux. Ознайомитись (чи згадати і закріпити) з механізмом передачі параметрів у програму. Вихідний текст програми #include <stdio.h> #include <string.h> #include <dirent.h> #define NAME_LENGTH 256 #define USING "using: \"labor3 <dir_name>\"\n" #define ERROR "error while reading directory\n" void processDir(DIR *); int main(int argc, char **argv) { DIR * dir; if (argc != 2) { fprintf(stderr, USING); exit(-1); } else if ((dir = opendir(argv[1])) == 0) { fprintf(stderr, ERROR); exit(-1); } processDir(dir); closedir(dir); exit(0); } void processDir(DIR * dir) { struct dirent * dirEntry; int i = 0; while((dirEntry = readdir(dir)) != NULL) { printf("%4d\t%s\n", i++, dirEntry->d_name); } } На вхід програми подається ім’я директорії (якщо воно містить пробіли, то береться в подвійні лапки). Вихід – на консоль виводиться список елементів заданої директорії. Призначення, синопсис та основні параметри системних викликів DIR *opendir(const char *name) – відкрити директорію для читання; int closedir(DIR *dir) – закрити директорію; readdir – читання елемента директорії _syscall3(int, readdir, uint, fd, struct dirent *, dirp, uint, count); int readdir(unsigned int fd, struct dirent *dirp, unsigned int count); struct dirent { long d_ino; /* inode number */ off_t d_off; /* offset to this dirent */ unsigned short d_reclen; /* length of this d_name */ char d_name [NAME_MAX+1]; /* file name (null-terminated) */ } struct dirent *readdir(DIR *dir); void rewinddir(DIR *dir) – скид потоку директорії (встановлення вказівника на перший void seekdir(DIR *dir, off_t offset) – встановити позицію для наступного виклику readdir() в потоці директорії. void telldir(DIR *dir) – повернення поточного розташування в потоці директорії. int scandir(const char *dir, struct dirent ***namelist, int (*select)(const struct dirent *), int (*compar)(const struct dirent **, const struct dirent **)) – сканування директорії на виявлення вмісту; int alphasort(const struct dirent **a, const struct dirent **b) – функція для порівняння двох елементів директорії. Висновок В процесі виконання даної лабораторної роботи я ознайомився із системними викликами ОС Linux, які використовуються для роботи із директоріями файлової системи. Список літератури Кейт Хевіленд, Дайна Грей, Бен Салама “Системное программирование в Unix”. Москва 2000. Електронні ресурси кафедри ЕОМ.
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини